home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-01-24 | 25.8 KB | 688 lines | [TEXT/MPS ] |
- ;
- ; File: CMICCProfile.a
- ;
- ; Contains: Definitions for ColorSync 2.0 profile
- ;
- ; Version: Technology: ColorSync 2.0
- ; Package: Universal Interfaces 2.2 in “MPW” on ETO #20
- ;
- ; Copyright: © 1984-1995 by Apple Computer, Inc.
- ; All rights reserved.
- ;
- ; Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- ; stack. Include the file and version information (from above)
- ; in the problem description and send to:
- ; Internet: apple.bugs@applelink.apple.com
- ; AppleLink: APPLE.BUGS
- ;
- ;
-
- IF &TYPE('__CMICCPROFILE__') = 'UNDEFINED' THEN
- __CMICCPROFILE__ SET 1
-
-
- IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
- include 'Types.a'
- ENDIF
- ; include 'ConditionalMacros.a' ;
-
- cmCS2ProfileVersion EQU $02000000
-
- ; Current Major version number
- cmCurrentProfileMajorVersion EQU $02000000
-
- ; magic cookie number for anonymous file ID
- cmMagicNumber EQU 'acsp'
-
- ; ColorSync profile version 1.0
- cmCS1ProfileVersion EQU $00000100
-
- ;**********************************************************************
- ;************** ColorSync 2.0 profile specification *******************
- ;**********************************************************************
- ; profile flags element values
- cmEmbeddedProfile EQU 0 ; 0 is not embedded profile, 1 is embedded profile
- cmEmbeddedUse EQU 1 ; 0 is to use anywhere, 1 is to use as embedded profile only
-
- ; data type element values
- cmAsciiData EQU 0
- cmBinaryData EQU 1
-
- ; rendering intent element values
- cmPerceptual EQU 0 ; Photographic images
- cmRelativeColorimetric EQU 1 ; Logo Colors
- cmSaturation EQU 2 ; Business graphics
- cmAbsoluteColorimetric EQU 3 ; Logo Colors
-
- ; speed and quality flag options
- cmNormalMode EQU 0 ; it uses the least significent two bits in the high word of flag
- cmDraftMode EQU 1 ; it should be evaulated like this: right shift 16 bits first, mask off the
- cmBestMode EQU 2 ; high 14 bits, and then compare with the enum to determine the option value
-
- ; device/media attributes element values
- cmReflective EQU 0 ; 0 is reflective media, 1 is transparency media
- cmGlossy EQU 1 ; 0 is glossy, 1 is matte
-
- ; screen encodings
- cmPrtrDefaultScreens EQU 0 ; Use printer default screens. 0 is false, 1 is ture
- cmLinesPer EQU 1 ; 0 is LinesPerCm, 1 is LinesPerInch
-
- ; 2.0 tag type information
- cmNumHeaderElements EQU 10
-
- ; public tags
- cmAToB0Tag EQU 'A2B0'
- cmAToB1Tag EQU 'A2B1'
- cmAToB2Tag EQU 'A2B2'
- cmBlueColorantTag EQU 'bXYZ'
- cmBlueTRCTag EQU 'bTRC'
- cmBToA0Tag EQU 'B2A0'
- cmBToA1Tag EQU 'B2A1'
- cmBToA2Tag EQU 'B2A2'
- cmCalibrationDateTimeTag EQU 'calt'
- cmCharTargetTag EQU 'targ'
- cmCopyrightTag EQU 'cprt'
- cmDeviceMfgDescTag EQU 'dmnd'
- cmDeviceModelDescTag EQU 'dmdd'
- cmGamutTag EQU 'gamt'
- cmGrayTRCTag EQU 'kTRC'
- cmGreenColorantTag EQU 'gXYZ'
- cmGreenTRCTag EQU 'gTRC'
- cmLuminanceTag EQU 'lumi'
- cmMeasurementTag EQU 'meas'
- cmMediaBlackPointTag EQU 'bkpt'
- cmMediaWhitePointTag EQU 'wtpt'
- cmNamedColorTag EQU 'ncol'
- cmPreview0Tag EQU 'pre0'
- cmPreview1Tag EQU 'pre1'
- cmPreview2Tag EQU 'pre2'
- cmProfileDescriptionTag EQU 'desc'
- cmProfileSequenceDescTag EQU 'pseq'
- cmPS2CRD0Tag EQU 'psd0'
- cmPS2CRD1Tag EQU 'psd1'
- cmPS2CRD2Tag EQU 'psd2'
- cmPS2CRD3Tag EQU 'psd3'
- cmPS2CSATag EQU 'ps2s'
- cmPS2RenderingIntentTag EQU 'ps2i'
- cmRedColorantTag EQU 'rXYZ'
- cmRedTRCTag EQU 'rTRC'
- cmScreeningDescTag EQU 'scrd'
- cmScreeningTag EQU 'scrn'
- cmTechnologyTag EQU 'tech'
- cmUcrBgTag EQU 'bfd '
- cmViewingConditionsDescTag EQU 'vued'
- cmViewingConditionsTag EQU 'view'
-
- ; custom tags
- cmPS2CRDVMSizeTag EQU 'psvm'
-
- ; technology tag descriptions
- cmTechnologyFilmScanner EQU 'fscn'
- cmTechnologyReflectiveScanner EQU 'rscn'
- cmTechnologyInkJetPrinter EQU 'ijet'
- cmTechnologyThermalWaxPrinter EQU 'twax'
- cmTechnologyElectrophotographicPrinter EQU 'epho'
- cmTechnologyElectrostaticPrinter EQU 'esta'
- cmTechnologyDyeSublimationPrinter EQU 'dsub'
- cmTechnologyPhotographicPaperPrinter EQU 'rpho'
- cmTechnologyFilmWriter EQU 'fprn'
- cmTechnologyVideoMonitor EQU 'vidm'
- cmTechnologyVideoCamera EQU 'vidc'
- cmTechnologyProjectionTelevision EQU 'pjtv'
- cmTechnologyCRTDisplay EQU 'CRT '
- cmTechnologyPMDisplay EQU 'PMD '
- cmTechnologyAMDisplay EQU 'AMD '
- cmTechnologyPhotoCD EQU 'KPCD'
- cmTechnologyPhotoImageSetter EQU 'imgs'
- cmTechnologyGravure EQU 'grav'
- cmTechnologyOffsetLithography EQU 'offs'
- cmTechnologySilkscreen EQU 'silk'
- cmTechnologyFlexography EQU 'flex'
-
- ; type signatures
- cmSigCurveType EQU 'curv'
- cmSigDataType EQU 'data'
- cmSigDateTimeType EQU 'dtim'
- cmSigLut16Type EQU 'mft2'
- cmSigLut8Type EQU 'mft1'
- cmSigMeasurementType EQU 'meas'
- cmSigNamedColorType EQU 'ncol'
- cmSigProfileDescriptionType EQU 'desc'
- cmSigScreeningType EQU 'scrn'
- cmSigS15Fixed16Type EQU 'sf32'
- cmSigSignatureType EQU 'sig '
- cmSigTextType EQU 'text'
- cmSigU16Fixed16Type EQU 'uf32'
- cmSigU1Fixed15Type EQU 'uf16'
- cmSigUInt32Type EQU 'ui32'
- cmSigUInt64Type EQU 'ui64'
- cmSigUInt8Type EQU 'ui08'
- cmSigViewingConditionsType EQU 'view'
- cmSigXYZType EQU 'XYZ '
-
- ; Measurement type encodings
- ; Measurement Flare
- cmFlare0 EQU $00000000
- cmFlare100 EQU $00000001
-
- ; Measurement Geometry
- cmGeometryUnknown EQU $00000000
- cmGeometry045or450 EQU $00000001
- cmGeometry0dord0 EQU $00000002
-
- ; Standard Observer
- cmStdobsUnknown EQU $00000000
- cmStdobs1931TwoDegrees EQU $00000001
- cmStdobs1964TenDegrees EQU $00000002
-
- ; Standard Illuminant
- cmIlluminantUnknown EQU $00000000
- cmIlluminantD50 EQU $00000001
- cmIlluminantD65 EQU $00000002
- cmIlluminantD93 EQU $00000003
- cmIlluminantF2 EQU $00000004
- cmIlluminantD55 EQU $00000005
- cmIlluminantA EQU $00000006
- cmIlluminantEquiPower EQU $00000007
- cmIlluminantF8 EQU $00000008
-
- ; Spot Function Value
- cmSpotFunctionUnknown EQU 0
- cmSpotFunctionDefault EQU 1
- cmSpotFunctionRound EQU 2
- cmSpotFunctionDiamond EQU 3
- cmSpotFunctionEllipse EQU 4
- cmSpotFunctionLine EQU 5
- cmSpotFunctionSquare EQU 6
- cmSpotFunctionCross EQU 7
-
- ; Color Space Signatures
- cmXYZData EQU 'XYZ '
- cmLabData EQU 'Lab '
- cmLuvData EQU 'Luv '
- cmYxyData EQU 'Yxy '
- cmRGBData EQU 'RGB '
- cmGrayData EQU 'GRAY'
- cmHSVData EQU 'HSV '
- cmHLSData EQU 'HLS '
- cmCMYKData EQU 'CMYK'
- cmCMYData EQU 'CMY '
- cmMCH5Data EQU 'MCH5'
- cmMCH6Data EQU 'MCH6'
- cmMCH7Data EQU 'MCH7'
- cmMCH8Data EQU 'MCH8'
-
- ; profileClass enumerations
- cmInputClass EQU 'scnr'
- cmDisplayClass EQU 'mntr'
- cmOutputClass EQU 'prtr'
- cmLinkClass EQU 'link'
- cmAbstractClass EQU 'abst'
- cmColorSpaceClass EQU 'spac'
-
- ; platform enumerations
- cmMacintosh EQU 'APPL'
- cmMicrosoft EQU 'MSFT'
- cmSolaris EQU 'SUNW'
- cmSiliconGraphics EQU 'SGI '
- cmTaligent EQU 'TGNT'
-
- ; ColorSync 1.0 elements
- cmCS1ChromTag EQU 'chrm'
- cmCS1TRCTag EQU 'trc '
- cmCS1NameTag EQU 'name'
- cmCS1CustTag EQU 'cust'
-
- ; General element data types
- CMDateTime RECORD 0
- year ds.w 1 ; offset: $0 (0)
- month ds.w 1 ; offset: $2 (2)
- dayOfTheMonth ds.w 1 ; offset: $4 (4)
- hours ds.w 1 ; offset: $6 (6)
- minutes ds.w 1 ; offset: $8 (8)
- seconds ds.w 1 ; offset: $A (10)
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMDateTime CMDateTime
- CMFixedXYZColor RECORD 0
- X ds.l 1 ; offset: $0 (0)
- Y ds.l 1 ; offset: $4 (4)
- Z ds.l 1 ; offset: $8 (8)
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMFixedXYZColor CMFixedXYZColor
- ; typedef unsigned short CMXYZComponent
- CMXYZColor RECORD 0
- X ds.w 1 ; offset: $0 (0)
- Y ds.w 1 ; offset: $2 (2)
- Z ds.w 1 ; offset: $4 (4)
- sizeof EQU * ; size: $6 (6)
- ENDR
-
- ; typedef struct CMXYZColor CMXYZColor
- CM2Header RECORD 0
- size ds.l 1 ; offset: $0 (0) ; This is the total size of the Profile
- CMMType ds.l 1 ; offset: $4 (4) ; CMM signature, Registered with CS2 consortium
- profileVersion ds.l 1 ; offset: $8 (8) ; Version of CMProfile format
- profileClass ds.l 1 ; offset: $C (12) ; input, display, output, devicelink, abstract, or color conversion profile type
- dataColorSpace ds.l 1 ; offset: $10 (16) ; color space of data
- profileConnectionSpace ds.l 1 ; offset: $14 (20) ; profile connection color space
- dateTime ds CMDateTime ; offset: $18 (24) ; date and time of profile creation
- CS2profileSignature ds.l 1 ; offset: $24 (36) ; 'acsp' constant ColorSync 2.0 file ID
- platform ds.l 1 ; offset: $28 (40) ; primary profile platform, Registered with CS2 consortium
- flags ds.l 1 ; offset: $2C (44) ; profile flags
- deviceManufacturer ds.l 1 ; offset: $30 (48) ; Registered with CS2 consortium
- deviceModel ds.l 1 ; offset: $34 (52) ; Registered with CS2 consortium
- deviceAttributes ds.l 2 ; offset: $38 (56) ; Attributes like paper type
- renderingIntent ds.l 1 ; offset: $40 (64) ; preferred rendering intent of tagged object
- white ds CMFixedXYZColor ; offset: $44 (68) ; profile illuminant
- reserved ds.b 48 ; offset: $50 (80) ; reserved for future use
- sizeof EQU * ; size: $80 (128)
- ENDR
-
- ; typedef struct CM2Header CM2Header
- CMTagRecord RECORD 0
- tag ds.l 1 ; offset: $0 (0) ; Registered with CS2 consortium
- elementOffset ds.l 1 ; offset: $4 (4) ; Relative to start of CMProfile
- elementSize ds.l 1 ; offset: $8 (8)
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMTagRecord CMTagRecord
- CMTagElemTable RECORD 0
- count ds.l 1 ; offset: $0 (0)
- tagList ds CMTagRecord ; offset: $4 (4) ; Variable size
- sizeof EQU * ; size: $10 (16)
- ENDR
-
- ; typedef struct CMTagElemTable CMTagElemTable
- ; External 0x02002001 CMProfile
- CM2Profile RECORD 0
- header ds CM2Header ; offset: $0 (0)
- tagTable ds CMTagElemTable ; offset: $80 (128)
- elemData ds.b 1 ; offset: $90 (144) ; Tagged element storage. Variable size
- ORG 146
- sizeof EQU * ; size: $92 (146)
- ENDR
-
- ; typedef struct CM2Profile CM2Profile, **CM2ProfileHandle
- ; Tag Type Definitions
- CMCurveType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'curv'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- countValue ds.l 1 ; offset: $8 (8) ; number of entries in table that follows
- data ds.w 1 ; offset: $C (12) ; Tagged element storage. Variable size
- sizeof EQU * ; size: $E (14)
- ENDR
-
- ; typedef struct CMCurveType CMCurveType
- CMDataType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'data'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- dataFlag ds.l 1 ; offset: $8 (8) ; 0 = ASCII, 1 = binary
- data ds.b 1 ; offset: $C (12) ; Tagged element storage. Variable size
- ORG 14
- sizeof EQU * ; size: $E (14)
- ENDR
-
- ; typedef struct CMDataType CMDataType
- CMDateTimeType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'dtim'
- reserved ds.l 1 ; offset: $4 (4)
- dateTime ds CMDateTime ; offset: $8 (8)
- sizeof EQU * ; size: $14 (20)
- ENDR
-
- ; typedef struct CMDateTimeType CMDateTimeType
- CMLut16Type RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'mft2'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- inputChannels ds.b 1 ; offset: $8 (8) ; Number of input channels
- outputChannels ds.b 1 ; offset: $9 (9) ; Number of output channels
- gridPoints ds.b 1 ; offset: $A (10) ; Number of clutTable grid points
- reserved2 ds.b 1 ; offset: $B (11) ; fill with 0x00
- matrix ds.l 9 ; offset: $C (12) ;
- inputTableEntries ds.w 1 ; offset: $30 (48) ;
- outputTableEntries ds.w 1 ; offset: $32 (50) ;
- inputTable ds.w 1 ; offset: $34 (52) ; Variable size
- CLUT ds.w 1 ; offset: $36 (54) ; Variable size
- outputTable ds.w 1 ; offset: $38 (56) ; Variable size
- sizeof EQU * ; size: $3A (58)
- ENDR
-
- ; typedef struct CMLut16Type CMLut16Type
- CMLut8Type RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'mft1'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- inputChannels ds.b 1 ; offset: $8 (8) ;
- outputChannels ds.b 1 ; offset: $9 (9) ;
- gridPoints ds.b 1 ; offset: $A (10) ;
- reserved2 ds.b 1 ; offset: $B (11) ; fill with 0x00
- matrix ds.l 9 ; offset: $C (12) ;
- inputTable ds.b 256 ; offset: $30 (48) ; fixed size of 256
- CLUT ds.b 1 ; offset: $130 (304) ; Variable size
- outputTable ds.b 256 ; offset: $131 (305) ; fixed size of 256
- ORG 562
- sizeof EQU * ; size: $232 (562)
- ENDR
-
- ; typedef struct CMLut8Type CMLut8Type
- CMMeasurementType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'meas'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- standardObserver ds.l 1 ; offset: $8 (8) ; 0 : unknown, 1 : CIE 1931, 2 : CIE 1964
- backingXYZ ds CMFixedXYZColor ; offset: $C (12) ; absolute XYZ values of backing
- geometry ds.l 1 ; offset: $18 (24) ; 0 : unknown, 1 : 0/45 or 45/0, 2 :0/d or d/0
- flare ds.l 1 ; offset: $1C (28) ; 0 : 0%, 1 : 100% flare
- illuminant ds.l 1 ; offset: $20 (32) ; standard illuminant
- sizeof EQU * ; size: $24 (36)
- ENDR
-
- ; typedef struct CMMeasurementType CMMeasurementType
- CMNamedColorType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'ncol'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- vendorFlag ds.l 1 ; offset: $8 (8) ;
- count ds.l 1 ; offset: $C (12) ; count of named colors in array that follows
- prefixName ds.b 1 ; offset: $10 (16) ; Variable size, max = 32, to access fields after this one, have to count bytes
- suffixName ds.b 1 ; offset: $11 (17) ; Variable size, max = 32
- rootName ds.b 1 ; offset: $12 (18) ; Variable size, max = 32
- colorCoords ds.b 1 ; offset: $13 (19) ; Variable size
- sizeof EQU * ; size: $14 (20)
- ENDR
-
- ; typedef struct CMNamedColorType CMNamedColorType
- CMTextDescriptionType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'desc'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- ASCIICount ds.l 1 ; offset: $8 (8) ; the count of "bytes"
- ASCIIName ds.b 2 ; offset: $C (12) ; Variable size, to access fields after this one, have to count bytes
- UniCodeCode ds.l 1 ; offset: $E (14)
- UniCodeCount ds.l 1 ; offset: $12 (18) ; the count of characters, each character has two bytes
- UniCodeName ds.b 2 ; offset: $16 (22) ; Variable size
- ScriptCodeCode ds.w 1 ; offset: $18 (24)
- ScriptCodeCount ds.b 1 ; offset: $1A (26) ; the count of "bytes"
- ScriptCodeName ds.b 2 ; offset: $1B (27) ; Variable size
- ORG 30
- sizeof EQU * ; size: $1E (30)
- ENDR
-
- ; typedef struct CMTextDescriptionType CMTextDescriptionType
- CMTextType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'text'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- text ds.b 1 ; offset: $8 (8) ; count of text is obtained from tag size element
- ORG 10
- sizeof EQU * ; size: $A (10)
- ENDR
-
- ; typedef struct CMTextType CMTextType
- CMScreeningType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'scrn'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- screeningFlag ds.l 1 ; offset: $8 (8) ; bit 0 : use printer default screens, bit 1 : inch/cm
- channelCount ds.l 1 ; offset: $C (12)
- frequency ds.l 1 ; offset: $10 (16)
- angle ds.l 1 ; offset: $14 (20)
- sportFunction ds.l 1 ; offset: $18 (24)
- sizeof EQU * ; size: $1C (28)
- ENDR
-
- ; typedef struct CMScreeningType CMScreeningType
- CMSignatureType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'sig '
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- signature ds.l 1 ; offset: $8 (8)
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMSignatureType CMSignatureType
- CMS15Fixed16ArrayType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'sf32'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- value ds.l 1 ; offset: $8 (8) ; Variable size
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMS15Fixed16ArrayType CMS15Fixed16ArrayType
- CMU16Fixed16ArrayType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'uf32'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- value ds.l 1 ; offset: $8 (8) ; Variable size
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMU16Fixed16ArrayType CMU16Fixed16ArrayType
- CMUInt16ArrayType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'ui16'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- value ds.w 1 ; offset: $8 (8) ; Variable size
- sizeof EQU * ; size: $A (10)
- ENDR
-
- ; typedef struct CMUInt16ArrayType CMUInt16ArrayType
- CMUInt32ArrayType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'ui32'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- value ds.l 1 ; offset: $8 (8) ; Variable size
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMUInt32ArrayType CMUInt32ArrayType
- CMUInt64ArrayType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'ui64'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- value ds.l 1 ; offset: $8 (8) ; Variable size (x2)
- sizeof EQU * ; size: $C (12)
- ENDR
-
- ; typedef struct CMUInt64ArrayType CMUInt64ArrayType
- CMUInt8ArrayType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'ui08'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- value ds.b 1 ; offset: $8 (8) ; Variable size
- ORG 10
- sizeof EQU * ; size: $A (10)
- ENDR
-
- ; typedef struct CMUInt8ArrayType CMUInt8ArrayType
- CMViewingConditionsType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'view'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- illuminant ds CMFixedXYZColor ; offset: $8 (8) ; absolute XYZs of illuminant in cd/m^2
- surround ds CMFixedXYZColor ; offset: $14 (20) ; absolute XYZs of surround in cd/m^2
- stdIlluminant ds.l 1 ; offset: $20 (32) ; see definitions of std illuminants
- sizeof EQU * ; size: $24 (36)
- ENDR
-
- ; typedef struct CMViewingConditionsType CMViewingConditionsType
- CMXYZType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'XYZ '
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- XYZ ds CMFixedXYZColor ; offset: $8 (8) ; variable size XYZ tristimulus values
- sizeof EQU * ; size: $14 (20)
- ENDR
-
- ; typedef struct CMXYZType CMXYZType
- ; Profile sequence description type
- CMProfileSequenceDescType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'pseq '
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- count ds.l 1 ; offset: $8 (8) ; Number of descriptions
- ; * variable size fields to follow, to access them, must count bytes
- deviceMfg ds.l 1 ; offset: $C (12) ; Device Manufacturer
- deviceModel ds.l 1 ; offset: $10 (16) ; Decvice Model
- attributes ds.l 2 ; offset: $14 (20) ; Device attributes
- technology ds.l 1 ; offset: $1C (28) ; Technology signature
- mfgDescASCIICount ds.l 1 ; offset: $20 (32) ; the count of "bytes"
- mfgDescASCIIName ds.b 2 ; offset: $24 (36) ; Variable size
- mfgDescUniCodeCode ds.l 1 ; offset: $26 (38)
- mfgDescUniCodeCount ds.l 1 ; offset: $2A (42) ; the count of characters, each character has two bytes
- mfgDescUniCodeName ds.b 2 ; offset: $2E (46) ; Variable size
- mfgDescScriptCodeCode ds.l 1 ; offset: $30 (48)
- mfgDescScriptCodeCount ds.l 1 ; offset: $34 (52) ; the count of "bytes"
- mfgDescScriptCodeName ds.b 2 ; offset: $38 (56) ; Variable size
- modelDescASCIICount ds.l 1 ; offset: $3A (58) ; the count of "bytes"
- modelDescASCIIName ds.b 2 ; offset: $3E (62) ; Variable size
- modelDescUniCodeCode ds.l 1 ; offset: $40 (64)
- modelDescUniCodeCount ds.l 1 ; offset: $44 (68) ; the count of characters, each character has two bytes
- modelDescUniCodeName ds.b 2 ; offset: $48 (72) ; Variable size
- modelDescScriptCodeCode ds.w 1 ; offset: $4A (74)
- modelDescScriptCodeCount ds.b 1 ; offset: $4C (76) ; the count of "bytes"
- modelDescScriptCodeName ds.b 2 ; offset: $4D (77) ; Variable size
- sizeof EQU * ; size: $50 (80)
- ENDR
-
- ; typedef struct CMProfileSequenceDescType CMProfileSequenceDescType
- ; Under color removal, black generation type
- CMUcrBgType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'bfd '
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- ucrCount ds.l 1 ; offset: $8 (8) ; Number of UCR entries
- ucrValues ds.w 1 ; offset: $C (12) ; variable size
- bgCount ds.l 1 ; offset: $E (14) ; Number of BG entries
- bgValues ds.w 1 ; offset: $12 (18) ; variable size
- ucrbgASCII ds.b 1 ; offset: $14 (20) ; null terminated ASCII string
- ORG 22
- sizeof EQU * ; size: $16 (22)
- ENDR
-
- ; typedef struct CMUcrBgType CMUcrBgType
- CMIntentCRDVMSize RECORD 0
- renderingIntent ds.l 1 ; offset: $0 (0) ; rendering intent
- VMSize ds.l 1 ; offset: $4 (4) ; VM size taken up by the CRD
- sizeof EQU * ; size: $8 (8)
- ENDR
-
- ; typedef struct CMIntentCRDVMSize CMIntentCRDVMSize
- CMPS2CRDVMSizeType RECORD 0
- typeDescriptor ds.l 1 ; offset: $0 (0) ; 'psvm'
- reserved ds.l 1 ; offset: $4 (4) ; fill with 0x00
- count ds.l 1 ; offset: $8 (8) ; number of intent entries
- intentCRD ds CMIntentCRDVMSize ; offset: $C (12) ; variable size
- sizeof EQU * ; size: $14 (20)
- ENDR
-
- ; typedef struct CMPS2CRDVMSizeType CMPS2CRDVMSizeType
- ;**********************************************************************
- ;************** ColorSync 1.0 profile specification *******************
- ;**********************************************************************
-
- cmGrayResponse EQU 0
- cmRedResponse EQU 1
- cmGreenResponse EQU 2
- cmBlueResponse EQU 3
- cmCyanResponse EQU 4
- cmMagentaResponse EQU 5
- cmYellowResponse EQU 6
- cmUcrResponse EQU 7
- cmBgResponse EQU 8
- cmOnePlusLastResponse EQU 9
-
- ; Device types
- cmMonitorDevice EQU 'mntr'
- cmScannerDevice EQU 'scnr'
- cmPrinterDevice EQU 'prtr'
-
- CMIString RECORD 0
- theScript ds.w 1 ; offset: $0 (0)
- theString ds.l 16 ; offset: $2 (2)
- sizeof EQU * ; size: $42 (66)
- ENDR
-
- ; typedef struct CMIString CMIString
- ; Profile options
-
- cmPerceptualMatch EQU $0000 ; Default. For photographic images
- cmColorimetricMatch EQU $0001 ; Exact matching when possible
- cmSaturationMatch EQU $0002 ; For solid colors
-
- ; Profile flags
- cmNativeMatchingPreferred EQU $00000001 ; Default to native not preferred
- cmTurnOffCache EQU $00000002 ; Default to turn on CMM cache
-
- ; typedef long CMMatchOption
- ; typedef long CMMatchFlag
- CMHeader RECORD 0
- size ds.l 1 ; offset: $0 (0)
- CMMType ds.l 1 ; offset: $4 (4)
- applProfileVersion ds.l 1 ; offset: $8 (8)
- dataType ds.l 1 ; offset: $C (12)
- deviceType ds.l 1 ; offset: $10 (16)
- deviceManufacturer ds.l 1 ; offset: $14 (20)
- deviceModel ds.l 1 ; offset: $18 (24)
- deviceAttributes ds.l 2 ; offset: $1C (28)
- profileNameOffset ds.l 1 ; offset: $24 (36)
- customDataOffset ds.l 1 ; offset: $28 (40)
- flags ds.l 1 ; offset: $2C (44)
- options ds.l 1 ; offset: $30 (48)
- white ds CMXYZColor ; offset: $34 (52)
- black ds CMXYZColor ; offset: $3A (58)
- sizeof EQU * ; size: $40 (64)
- ENDR
-
- ; typedef struct CMHeader CMHeader
- CMProfileChromaticities RECORD 0
- red ds CMXYZColor ; offset: $0 (0)
- green ds CMXYZColor ; offset: $6 (6)
- blue ds CMXYZColor ; offset: $C (12)
- cyan ds CMXYZColor ; offset: $12 (18)
- magenta ds CMXYZColor ; offset: $18 (24)
- yellow ds CMXYZColor ; offset: $1E (30)
- sizeof EQU * ; size: $24 (36)
- ENDR
-
- ; typedef struct CMProfileChromaticities CMProfileChromaticities
- CMProfileResponse RECORD 0
- counts ds.w 9 ; offset: $0 (0)
- data ds.w 1 ; offset: $12 (18) ; Variable size
- sizeof EQU * ; size: $14 (20)
- ENDR
-
- ; typedef struct CMProfileResponse CMProfileResponse
- CMProfile RECORD 0
- header ds CMHeader ; offset: $0 (0)
- profile ds CMProfileChromaticities ; offset: $40 (64)
- response ds CMProfileResponse ; offset: $64 (100)
- profileName ds CMIString ; offset: $78 (120)
- customData ds.b 1 ; offset: $BA (186) ; Variable size
- ORG 188
- sizeof EQU * ; size: $BC (188)
- ENDR
-
- ; typedef struct CMProfile CMProfile, **CMProfileHandle
- IF OLDROUTINENAMES THEN
-
- kCMApplProfileVersion EQU cmCS1ProfileVersion
-
- grayResponse EQU cmGrayResponse
- redResponse EQU cmRedResponse
- greenResponse EQU cmGreenResponse
- blueResponse EQU cmBlueResponse
- cyanResponse EQU cmCyanResponse
- magentaResponse EQU cmMagentaResponse
- yellowResponse EQU cmYellowResponse
- ucrResponse EQU cmUcrResponse
- bgResponse EQU cmBgResponse
- onePlusLastResponse EQU cmOnePlusLastResponse
-
- rgbData EQU cmRGBData
- cmykData EQU cmCMYKData
- grayData EQU cmGrayData
- xyzData EQU cmXYZData
-
- monitorDevice EQU cmMonitorDevice
- scannerDevice EQU cmScannerDevice
- printerDevice EQU cmPrinterDevice
-
- ; typedef unsigned short XYZComponent
- ; typedef struct CMXYZColor XYZColor
- ; typedef unsigned short CMResponseData
- ; typedef struct CMIString IString
- ; typedef long CMResponseColor
- ; typedef CMResponseColor responseColor
- ENDIF
- ENDIF ; __CMICCPROFILE__
-